//
//  CategoryFactory.h
//  QuizMaster
//
//  Created by Jeppe Nielsen on 3/22/15.
//  Copyright (c) 2015 Jeppe Nielsen. All rights reserved.
//

#pragma once

#include "GameFactory.hpp"
#include "Category.hpp"
#include "Question.hpp"
#include "CategoryComponent.hpp"
#include "Gui.hpp"
#include "QuestionDestroyerSystem.hpp"
#include "CategoryDestroyerSystem.hpp"
#include "SelectableCategory.hpp"

using namespace Nano;

class CategoryFactory : public GameFactory {
public:
    void Initialize();
    void SetGui(Gui* gui, GameObject* font);
    void CreateCategory(Category& category);
    void CreateSelectableCategory(Category& category, GameObject* parent, Vector2 position);
    
    void ClearAll();
    
    
private:
    void CreateQuestion(CategoryComponent* category, Question& question);
    Gui* gui;
    GameObject* font;
    CategoryDestroyerSystem* categoryDestroyerSystem;
    QuestionDestroyerSystem* questionDestroyerSystem;
};